home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / grafik / bildanzeiger / superview-lib_dev / include / svobjects / svobjects.h < prev   
C/C++ Source or Header  |  1995-03-09  |  5KB  |  111 lines

  1. /* svobjects/svobjects.h            */
  2. /* Version    : 4.1                 */
  3. /* Date       : 15.05.1994          */
  4. /* Written by : Andreas R. Kleinert */
  5.  
  6. /* SVObject-Version V2.x+ */
  7.  
  8. #ifndef SVOBJECTS_SVOBJECTS_H
  9. #define SVOBJECTS_SVOBJECTS_H
  10.  
  11.  
  12. struct SVO_ObjectNode
  13. {
  14.  struct Node svo_Node;              /* chaining Node                         */
  15.                                     /* (svo_Node->ln_Name is NULL            */
  16.                                     /*  by default !)                        */
  17.  
  18.  ULONG svo_Version;                 /* Library-Version of svobject           */
  19.  
  20.  ULONG svo_ObjectType;              /* see below (SVO_OBJECTTYPE_...)        */
  21.  
  22.  UBYTE svo_FileName [108];          /* use 30, as in struct FileInfoBlock    */
  23.  
  24.  UBYTE svo_TypeID      [32];        /* e.g. "GIF"                            */
  25.  ULONG svo_TypeCode;                /* ... and its appropriate Code,  ,      */
  26.                                     /* assigned by superview.library LATER.  */
  27.  
  28.  ULONG svo_SubTypeNum;              /* actually available SubTypes           */
  29.                                     /* (maximum 16) of the svobject.         */
  30.  
  31.                                     /* 0xFFFFFFFF means, that it is an       */
  32.                                     /* INDEPENDENT entry, which is an        */
  33.                                     /* unimplemented feature yet and         */
  34.                                     /* means that the SubTypeID and          */
  35.                                     /* SubTypeCode fields should be skipped. */
  36.  
  37.  UBYTE svo_SubTypeID   [16][16];    /* e.g. "87a" or "89a"                   */
  38.  ULONG svo_SubTypeCode [16];        /* ... and their appropriate Codes,      */
  39.                                     /* assigned by superview.library LATER.  */
  40.  
  41.  /* version 2 extensions : */
  42.  
  43.  ULONG svo_Flags;                   /* SVO_FLAG_... (see below)              */
  44.  
  45.  /* size may grow with bigger svo_Version, see below */
  46. };
  47.  
  48. #define SVO_VERSION (2)             /* If this Version, which depends on the */
  49.                                     /* svobject's Library-Version, is set,   */
  50.                                     /* it is guaranteed, that at least the   */
  51.                                     /* above information is available.       */
  52.  
  53. #define SVO_FILENAME "INTERNAL"     /* for internal svobjects only.          */
  54.  
  55.  
  56. #define SVO_OBJECTTYPE_NONE    ((ULONG) 0)
  57. #define SVO_OBJECTTYPE_UNKNOWN SVO_OBJECTTYPE_NONE
  58. #define SVO_OBJECTTYPE_ILLEGAL ((ULONG) 0xFFFFFFFF)
  59.  
  60. #define SVO_OBJECTTYPE_INTERNAL    ((ULONG) 1) /* internal                   */
  61. #define SVO_OBJECTTYPE_INDEPENDENT ((ULONG) 2) /* UNIMPLEMENTED              */
  62.                                                /* Handle them like EXTERNAL, */
  63.                                                /* but ignore some entries.   */
  64. #define SVO_OBJECTTYPE_EXTERNAL    ((ULONG) 3) /* external svobject          */
  65.  
  66.  
  67.   /* The following flags have been introduced with the V2 SVObjects
  68.      (depending on svo_Version : do not check them with V1 SVObjects).
  69.      They should help any applications deciding, whether a specific
  70.      SVObject may fulfil an action or not.
  71.      Note : Some SVObjects may not have the correct flags set and might
  72.             return SVERR_ACTION_NOT_SUPPORTED nevertheless
  73.   */
  74.  
  75.  
  76. #define SVO_FLAG_READS_TO_BUFFER    (1<<0) /* allows reading to SV_GfxBuffer */
  77. #define SVO_FLAG_READS_TO_SCREEN    (1<<1) /* allows displaying on Screen    */
  78.  
  79. #define SVO_FLAG_WRITES_FROM_BUFFER (1<<2) /* writes SV_GfxBuffer to file    */
  80. #define SVO_FLAG_WRITES_FROM_SCREEN (1<<3) /* writes Screen to file          */
  81.  
  82. #define SVO_FLAG_SUPPORTS_SVDRIVER  (1<<4) /* uses default SVDriver,         */
  83.                                            /* if available                   */
  84. #define SVO_FLAG_NEEDS_SVDRIVER     (1<<5) /* needs valid default SVDriver   */
  85.                                            /* for working. Developers :      */
  86.                                            /* Set SVO_FLAG_SVDRIVER instead  */
  87.  
  88. #define SVO_FLAG_SVDRIVER (SVO_FLAG_SUPPORTS_SVDRIVER | SVO_FLAG_NEEDS_SVDRIVER)
  89.  
  90.  
  91.  /* This structure has to be passed to SVObject's SVO_CheckFileType()
  92.     function, if media other than AKO_MEDIUM_DISK are used for reading.
  93.     This is supported since superview.library V4 and may be ignored by
  94.     SVObjects for compatibility reasons. To prevent older SVO_CheckFileType()
  95.     functions from crashing, superview.library will create a dummy-file and
  96.     pass it's handle also ...
  97.     ("You wanna something to check ? - Here you get it !")
  98.  
  99.      In the V3-SVObject specification this structure will HAVE TO be
  100.      examined, then. In the current V2-specification this is not the case.
  101.   */
  102.     
  103. struct SVOCheckFile
  104. {
  105.  ULONG svc_Medium;   /* AKO_MEDIUM_... */
  106.  
  107.  ULONG svc_Future;   /* as usual       */ 
  108. };
  109.  
  110. #endif /* SVOBJECTS_SVOBJECTS_H */
  111.